_gdk_x11_precache_atoms (display, precache_atoms, G_N_ELEMENTS (precache_atoms));
/* RandR must be initialized before we initialize the screens */
+ display_x11->have_randr12 = FALSE;
display_x11->have_randr13 = FALSE;
#ifdef HAVE_RANDR
if (XRRQueryExtension (display_x11->xdisplay,
XRRQueryVersion (display_x11->xdisplay, &major, &minor);
- if ((major == 1 && minor >= 3) || major > 1)
- display_x11->have_randr13 = TRUE;
+ if ((major == 1 && minor >= 2) || major > 1) {
+ display_x11->have_randr12 = TRUE;
+ if (minor >= 3 || major > 1)
+ display_x11->have_randr13 = TRUE;
+ }
gdk_x11_register_standard_event_type (display, display_x11->xrandr_event_base, RRNumberEvents);
}
/*
* gdkscreen-x11.c
- *
- * Copyright 2001 Sun Microsystems Inc.
+ *
+ * Copyright 2001 Sun Microsystems Inc.
*
* Erwann Chenede <erwann.chenede@sun.com>
*
}
static void
-init_randr_support (GdkScreen * screen)
+init_randr_support (GdkScreen *screen)
{
GdkX11Screen *x11_screen = GDK_X11_SCREEN (screen);
-
+
XSelectInput (GDK_SCREEN_XDISPLAY (screen),
- x11_screen->xroot_window,
- StructureNotifyMask);
+ x11_screen->xroot_window,
+ StructureNotifyMask);
#ifdef HAVE_RANDR
+ if (!GDK_X11_DISPLAY (gdk_screen_get_display (screen))->have_randr12)
+ return;
+
XRRSelectInput (GDK_SCREEN_XDISPLAY (screen),
- x11_screen->xroot_window,
- RRScreenChangeNotifyMask |
- RRCrtcChangeNotifyMask |
- RROutputPropertyNotifyMask);
+ x11_screen->xroot_window,
+ RRScreenChangeNotifyMask
+ | RRCrtcChangeNotifyMask
+ | RROutputPropertyNotifyMask);
#endif
}